import Vue from 'vue'
import App from './App.vue'
import router from './router/index'
import store from './store'
import axios from './axios'
import isEmail from './utils/validator-mail.js'
import isphone from './utils/validator-phone.js'
// import 'wowjs/css/libs/animate.css'
// import './assets/css/all_simpel_style.css'
//1.导入 monment 文件
import moment from 'moment'
//2.把 moment.js 挂载到全局上（即vue的原型链上）赋值使用
Vue.prototype.$moment = moment;
//3.调用API进行汉化
moment.locale('zh-cn');

import uni from './lib/uni-webview-js@0.0.3.js';
Vue.use(uni);

import {
    deepCopy
} from './utils/common'

import ElementUI from 'element-ui'
import 'element-ui/lib/theme-chalk/index.css'
import * as XLSX from 'xlsx';
// 引入富文本组件
import QuillEditor from 'vue-quill-editor'
// 引入富文本组件样式
import 'quill/dist/quill.core.css'
import 'quill/dist/quill.snow.css'
import 'quill/dist/quill.bubble.css'
import ImageResize from 'quill-image-resize-module'
// 引入高德
import AMapPlugin from './components/AMap/MapContainer.js'
// 引入echarts
import * as echarts from 'echarts';
// 把echarts挂载到vue原型
Vue.prototype.$echarts = echarts;

// 使用echarts
Vue.use(echarts);
// 使用高德
Vue.use(AMapPlugin);

Quill.register('modules/imageResize', ImageResize)

Vue.use(QuillEditor)

Vue.use(ElementUI)
Vue.prototype.$XLSX = XLSX
Vue.prototype.$axios = axios
Vue.prototype.deepCopy = deepCopy
Vue.config.productionTip = false
//全局引用校验邮箱
Vue.prototype.$isEmail = isEmail
Vue.prototype.$isphone = isphone

// let isRefresh = false; //判断是否是刷新页面进入的守卫
// //因为要做路由跳转是否合法的判断,所以写了个方法
// const beforeRouter = (to, from, next) => {
//   // loading.open();    //众所周知,需要加载一下...
//   if (store.getters.menus.length == 0) { //vuex中动态路由是否为空
//     store.dispatch('GENERATE_ROUTES').then(() => { //动态添加路由
//       isRefresh = true;
//       next();
//     });
//   } else if (!isRefresh) { //页面刷新进入
//     store.dispatch('GENERATE_ROUTES').then(() => { //刷新后vuex中数据会丢失,重新加入
//       isRefresh = true; //圈起来 重点
//       next({
//         ...to,
//         replace: true
//       }); //hack写法，保证路由已经添加成功
//     });
//   } else {
//     next(); //页面加了动态路由了,也不是刷新页面,正常点击按钮触发的操作,直接放行.
//   }
// };
// //判断用户跳转是否合法
// router.beforeEach((to, from, next) => {
//   if (from.path == '/login' || from.path == '/') {
//     if (store.getters.user == null) {
//       beforeRouter(to, from, next);
//     } else {
//       next();
//     }
//   } else {
//     beforeRouter(to, from, next);
//   }
// });
// // 记得吧转圈圈的关了
// router.afterEach(() => {
//   // loading.close();
// });

// element 按钮防抖，vue全局指令
// 当第一次点击按钮时，设置它的 disabled 属性，超过防抖时间后释放属性
Vue.directive('debounce', {
    inserted(el, binding) {
        el.addEventListener('click', e => {
            el.classList.add('is-disabled')
            el.disabled = true
            setTimeout(() => {
                el.disabled = false
                el.classList.remove('is-disabled')
            }, 2000)//我这里设置的是2000毫秒也就是2秒
        })
    }
})







new Vue({
    router,
    store,
    render: h => h(App),
    beforeCreate() {
        // 全局事件总线
        Vue.prototype.$bus = this
    }
}).$mount('#app')